home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
The 640 MEG Shareware Studio 2
/
The 640 Meg Shareware Studio CD-ROM Volume II (Data Express)(1993).ISO
/
comm
/
dup40.zip
/
DUP.PRG
< prev
next >
Wrap
Text File
|
1992-03-10
|
4KB
|
141 lines
* DUP.PRG written by Michael MacDonald 09/09/90 Modified 03/10/92
*
SET TALK OFF
SET CURSOR OFF
bbs="********"
mtag="**"
tagyn="N"
PARAMETERS mtag, bbs
IF ISCOLOR()
SET COLOR TO W/B
ENDIF
CLEAR
@ 1,20 SAY "DUP v4.0 by Michael MacDonald (c)1990-92"
@ 2,5 SAY "A program to delete duplicate filenames from ROBOCOMM's new files list"
p=0
num=0
count=0
d=0
n=0
crlf=CHR(13) + CHR(10)
line1=" FILES MARKED AS DELETED"+crlf
line2="├─────────── DUPS ────────────────┤ "+DTOC(DATE())+" ├────────────── DUPS ─────────────┤"+crlf
@ 4,5 SAY "░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░"
DO CASE
CASE FILE("new30.dbf")
USE new30 INDEX files
@ 6,5 SAY "Using NEW30.DBF"
CASE FILE("new40.dbf")
USE new40 INDEX files
@ 6,5 SAY "Using NEW40.DBF"
OTHERWISE
@ 6,5 SAY "Can't find NEWxx.DBF"
?
SET CURSOR ON
QUIT
ENDCASE
msize=RECCOUNT()
@ 7,5 SAY "Sorting on index FILES.NTX"
@ 8,5 SAY "Looking for duplicates"
IF UPPER(SUBSTR(mtag,1,2))="/T"
tagyn="Y"
bbs=UPPER(RTRIM(bbs))
ELSE
bbs=UPPER(RTRIM(mtag))
ENDIF
IF SUBSTR(bbs,1,2)<>"**"
@ 9,5 SAY "Saving files from "
?? bbs
ELSE
@ 9,5 SAY "No BBS preference"
ENDIF
DO WHILE .NOT. EOF()
num=num+1
line=INT((num/msize)*70)
IF line>0
@ 4,4+line SAY "█"
ENDIF
IF msize < 70 .AND. line < 70
@ 4,5+line SAY "█"
ENDIF
mfile=file_name
IF PCOUNT()=0 .OR. PCOUNT()=1 .AND. tagyn="Y"
bbs=RTRIM(id)
ENDIF
SKIP
IF file_name=mfile
SKIP -1
num=num-1
DO WHILE file_name=mfile
num=num+1
n=n+1
line=INT((num/msize)*70)
IF line>0
@ 4,4+line SAY "█"
ENDIF
IF RTRIM(id)<>RTRIM(bbs) .AND. ! DELETED()
@ 10,5 SAY "Deleting -->"
@ 10,18 SAY mfile
buffer = mfile +" "+ file_date+" "+id+" "+ SUBS(DESC,1,45)
DELETE
d=d+1
count=count+1
p=1
IF tagyn="Y"
REPLACE TAG WITH .T.
ENDIF
IF count<2
IF ! FILE("DELETED.FIL")
handle = FCREATE("DELETED.FIL")
FWRITE(handle,crlf)
FWRITE(handle,line1)
FWRITE(handle,crlf)
FWRITE(handle,line2)
FWRITE(handle,crlf)
ELSE
handle = FOPEN("DELETED.FIL",2)
FSEEK(handle,0,2)
FWRITE(handle,crlf)
FWRITE(handle,line2)
FWRITE(handle,crlf)
ENDIF
ENDIF
FWRITE(handle,buffer)
FWRITE(handle,crlf)
ENDIF
SKIP
ENDDO
IF d>0 .AND. d=n
SKIP -1
RECALL
IF tagyn="Y"
REPLACE TAG WITH .F.
ENDIF
SKIP
d=0
n=0
ENDIF
ENDIF
ENDDO
IF count>0 .AND. tagyn="Y"
@ 10+p,5 SAY "Tagging "+LTRIM(STR(count))+" duplicate files"
INDEX ON IF(TAG,"Y",fstatus)+SUBS(file_name,1,3) TO ntag
FCLOSE(handle)
? " All done!"
ENDIF
IF count>0 .AND. tagyn<> "Y"
@ 10+p,5 SAY LTRIM(STR(count))+" duplicate files deleted"
FCLOSE(handle)
? " All done!"
ENDIF
IF count=0
@ 10+p,5 SAY "No duplicate files found"
? " All done!"
ENDIF
?
SET CURSOR ON
CLOSE ALL
QUIT
*
* EOF DUP.PRG